The present disclosure describes systems and techniques relating to network file systems.
A server system can export one or more file systems over a network to client systems. Various examples of a server system include a Network Attached Storage (NAS) device and a server configured to run a file system daemon. A server system can include one or more data storage devices such as a hard disk drive (HDD) or a solid state drive (SSD). A server system can run a network file system (NFS) server daemon. A server running a NFS server daemon can be referred to as a NFS server. NFS servers are frequently used in data centers for data access and sharing data among clients.
Multiple client systems can mount a NFS exported by a NFS server. A client system can run a NFS client daemon to connect with one or more NFS servers to mount one or more NFSs. An operating system can provide access to local and network file systems to one or more applications such as a web server, e-mail server, database, or an operating system process. For example, an operating system can access one or more system files on a NFS. Typically, an application is agnostic regarding whether a file system is a network file system or a local file system.
A NFS server can support user authorization, authentication and prescribed security measures as required in enterprise data-centers. A NFS server can implement locking and cache coherency measures in conjunction with the NFS clients. NFS clients can cache file data and metadata locally to accelerate local application performance.
A server, such as a data processing apparatus that implements a virtualization layer, can run multiple operating system instances in separate virtual machines. Such instances can run NFS processes such as a NFS server daemon or a NFS client daemon. The server provides a virtualized network interface to each of the operating system instances such that the virtual machines communicate with each other as if they are actually on a physical network. For example, each virtual machine can have an assigned network address, e.g., Internet Protocol (IP) address.